[iOS][Android]【第21回】potatotips(iOS/Android開発Tips共有会) に参加しました!
potatotipsに参加してきました
こんばんは。朝のジャスミン茶は欠かせない田宮です。
昨日(2015/09/16) 行われた、potatotipsのイベントレポートをお届けします。potatotips は、iOS/Androidアプリ開発者向けの勉強会です。
定期的に開かれている人気の勉強会です。参加者全員が発表するのが元々のコンセプトで、最近では、オーディエンス枠などもあり、より気軽に参加できるようになっているようです。
※追記(2015-09-18,19)最新のpotatotips 21 · potatotips/potatotips Wiki · GitHub内容にあわせて内容を更新しました。
雰囲気
今回の会場は、リクルートマーケティングパートナーズ様のオフィス。とても綺麗な会場でした!
とても多くの方が来場されており、iOS / Android 問わず、スマートフォンに関わる技術者の方が集まる場になっていました。
概要
今回は、総勢16名の方が発表されました!
発表者 | 内容 | OS |
---|---|---|
_mpon | Swift compile time is so slow | iOS |
kgmyshin | framework code reading | Android |
shoby | Apple Watch Tips | iOS |
amyu_san | To learn Interpolator | Android |
TachibanaKaoru | 3D Touch on iPhone | iOS |
tarotaro4 | Recently Google Play Developer Console | Android |
cocominap | UIKit Sound | iOS |
petitviolet | ReactNative for Android | Android |
naoyashiga | ショボいPull Requestを積み重ねて、自分の中でOSS活動の敷居を下げる | iOS |
konifar | Nearby API | Android |
grgr56 | 絵の描けないエンジニア/コードの書けないデザイナー | iOS |
izumin5210 | Promisified BLE Client | Android |
tomzoh | TestFlightみたいなのを自作する | iOS |
teshi04 | Create Layouts with the Wearable UI Library | Android |
daisuke0131 | バグのことは嫌いになってもXcodeのことは嫌いにならないでください。 | iOS |
KeithYokoma | Popup view on Mortar | Android |
※ 上記は、potatotips 21 · potatotips/potatotips Wiki · GitHubから引用させて頂いております。
発表スタート
以下、箇条書きとなりますが、発表内容についてまとめさせて頂きました。
資料を確認させいただきましたら、随時記事に追加させていただこうと思っています。
また、当方iOS エンジニアにて、Android については詳しくないのですが、間違い等ありましたら、ご連絡頂ければ幸いです。
[iOS] Swift compile time is so slow
発表:_mpon さん
- Swift のコンパイルが遅い問題
- コンパイルに6分55秒かかっていたプロジェクト (Swift 1.2)
-
Swift ファイルの数を300から1にしてみた
- cat *.swift > God.swift
- 48秒に短縮!
- しかし、Xcodeのエディタが脂肪(3万行はムリだった)
- Exensionを 240 → 13に
- 1分55秒に短縮!
- .swiftファイルとExtension数の削減同時に行うと39秒に!
[Android] framework code reading
発表:kgmyshin さん
frameworkの中身がわかると面白い、というお話でした。具体的なツールの紹介もありました。また、インストール用にいらないエミュレータを消すと大きく空き容量が増えることを
- 起動シーケンス
- パスワードロック
- パスワード
- ヒントのXMLを作成していたりする
- Telephony
- イベント駆動。ハンドラとスレッドでガリガリ書いている。
- Permission
ツール
- OpenGrok
- 検索ツール
- Androidソースコード検索サービス
[iOS] Apple Watch Tips
発表:shoby さん
Apple Watch における、体感速度向上についてお話されました。 下記以外にもTIPSをお話されていました。
- 最初に見える部分だけ高速描画
- 通信なしで画面遷移
- 画面の上の方にテキスト情報 → ユーザーが文字を読んでる間に画像を読み込む
- 画像のロード Queue には1つずつ詰める
- 全体としては遅くなるが、1枚目が早く終る
- 最適なサイズの画像を使う
- Apple Watch 専用の小さいもの
- 画像をキャッシュ
- NSURLRequestReturnCacheDataElseLoad も要検討
[Android] To Learn Interpolator
発表:amyu_san さん
Androidでアニメーションの制御に使われる「Interpolator」についての発表でした。 最初に、自然なアニメーションを作るために使われる「CustomInterpolator」
- CustomInterpolator
- アニメーション曲線について、独自に定義して、様々なアニメーションを実現
- Mac の Grapher を使う
- 方程式を読み取ってグラフを描写する Mac 標準アプリ
- グラフを数式で作り、コードに変換する。
- x(時間軸)の区間で区切り、そこでどの式を使うかを if文などで分けて実装
[iOS] 3D Touch on iPhone
発表:TachibanaKaoru さん
iPhone 6s /6s Plus の新機能である、3D Touch についてのお話でした。
- Pressure Sensitivity
- タッチの強度
- 指かスタイラスかの判定
- UITouch クラスの force(CGFloat)を使う
- UITouchType
- 角度も取れる
- Quick Actions
- ホーム画面を押すと表示されるコンテキストメニュー
- Info.plist に設定
- タイトル、サブタイトル、アイコンなど
- Peek and Pop
- 軽く押すと少しだけ見える
- Mac の Quick Look 的なもの
[Android] Recently Google Play Developer Console
発表:tarotaro4 さん
Android アプリの公開や様々な設定・フィードバック閲覧などができる Google Developer Console の様々な機能について、最新の情報を発表されました。 下記以外の項目についても、詳しく説明されていました。
- Android Rate
- レートを上げるための指標になる
- Review&Comment
- レビューに返信が書けるようになった
- 読んでいれば、解決策を書ける
- しかしユーザに通知は行かない模様。ユーザ側から見に来てくれないと返信は伝わらない仕組み。
- ユーザが星の数(レート)を変えてくれた事がわかるようになっている
- Crash & ANR
- ANR = Android Not Responding キー入力に対して5秒間反応がないなどの時、ANRとなる
- クラッシュ時やANRの際、情報が送られてきて統計情報として表示される
- 実際はデータがうまくとれていない模様で、ほぼ役に立たない
- Optimization Tips
- アプリを改善するためのTIPSが表示される画面
- タブレット対応してください、など表示される
[iOS] UIKit Sound
発表:cocominap
私が発表しました。UIKit コンポーネントにおける様々なアクションに、効果音をつけたらどうなるか、をサンプルデモを中心にお伝えしました。
[Android] ReactNative for Android
発表:petitviolet さん
React Native for Android のセットアップ方法から、ご自身で作成された ReactNative のサンプルの紹介と解説をお話されました。
具体的なコードの解説がありました。私は ReactNative や React.js を触ったことがないのですが、読みやすい&分かりやすいなと感じました。
[iOS] ショボいPull Requestを積み重ねて、自分の中でOSS活動の敷居を下げる
発表:naoyashiga さん
ネットで話題になった記事ショボいPull Requestを積み重ねて、自分の中でOSS活動の敷居を下げる - not good but greatをベースに、発表されました。
- Pull Request を送ってみた
- Swift の場合:varをletに変える、使ってない変数を削除する
- 感謝された
- 自分が詳しい言語などのリポジトリを探す
- Trending repositoriesなどを使って、リポジトリを探す。作者がフィードバックを待っている。
- 英語が苦手でも、"Please Review" だけでOK!
- プロフィール画像にビビらない(かっこよくても笑)
- 「しょぼくても」大丈夫
- 敷居が下がる、感謝される、スキルアップする
[Android] Nearby Messages 触ってみた
発表:konifar さん
Android での近距離通信向けAPIについてお話されました。
- Nearby = 近距離通信向けAPI
-
Nearby Messages
- iOS でも使える模様
- Bluetooth, Wi-Fi, Ultrasound(超音波)を使った通信
- Publish ←→ Subscribe メッセージングモデル
- Nearby Messages の実装方法の解説
- GoogleApiClient.Builder().build
- subscribe()
- publish
- connect() / disconnect()
- ちゃんとつくろうとすると色々な制御(バッテリーなど)必要だけど、簡単に試せる
- ネットワークが無いとき、超音波通信ができず悲しかった
[iOS] 絵の描けないエンジニア/コードの書けないデザイナー
発表:grgr56 さん
賃貸アプリHOME'S へやくる!にプログラマとして関わる中での知見についてお話しされました。
- コードを書く前に、プロトタイプを作ることの重要性
- プログラマとデザイナーの間には「壁」がある
- エンジニアにはカッコイイ絵の壁
- デザイナーにはプログラムの壁
- プロトタイプツールが、デザイナーとプログラマの間の壁を壊すことが出来る
Promisified BLE Client
発表:izumin5210 さん
AndroidのBLE機能についての解説と、ご自身で作成されたBluetoothGattのラッパーライブラリーであるBletiaについて解説されました。
- Android のBLEつらい
- Bluetooth GATT
- GATT Server > Characteristic > Descriptor
- Peripheral との通信
- BluetoothGattCallback
- public BluetoothGatt ConnectGattの中
- Bletia (ラッパー)を作成した
[iOS] TestFlightみたいなのを自作する
発表:tomzoh さん
会社内でのバイナリ配布方法の変遷についてお話されました。
- 2009年〜
- 昔はメールでipa配布
- 煩雑
- 2010年〜
- TestFlight
- 詳しくない人向けに導入手順書が必要
- 2011年〜
- In-House 配布
- HTML から plist ファイルへのリンクを貼り、そこから plist 取得
- バイナリ配布サーバから ipaファイル取得
- In-House 配布システムを自社開発(バージョニングシステム対応)
[Android] Create Layouts with the Wearable UI Library
発表:teshi04 さん
Android Wear のUIコンポーネントについてお話されました。短い時間でとにかくたくさんのコンポーネントについてお話されていたのが印象的でした。メモできた範囲でご紹介します。
- WearbleListView
- DelayedConfirmationView
- DismissOverlayView
- ロングタップで Activity 終了するためのコンポーネント
- CircledImageView
- ボタンとして使われるImageView
- CardFrame
- CardFragment
- CardFrameが設定されている
- GridViewPager
- DotsPageIndicator
- ProgressSpinner
- CrossfadeDrawable
- ConfirmationActivity
- アクション完了時の結果表示
- ActionLabel
- CircularButton
- ActionPage
-
丸型のデバイス対応(余白、レイアウト)
- BoxInsetLayout
- WatchViewStub
- WearbleFrameLayout
[iOS] バグのことは嫌いになってもXcodeのことは嫌いにならないでください。
発表:daisuke0131 さん
Xcode におけるデバッグについての便利な機能についてお話されました。
- ボタンを押して画面遷移
- しかし エラーは 「App Delegate が原因」とだけ言っている
- Add Exception Breakpointすることで、どこで止まったかがわかる
- エラーの出力方法も替えられて良い
- Move Breakpoint To > Userで、複数プロジェクトでブレイクポイントを使いまわせる
- AutoLayout 制約でのエラー
- Add Symbolic Breakpoint を仕込むと、AutoLayout のエラー詳細を見ることが出来る
※上記の Add Symbolic Breakpoint についてですが、以下のサイトの解説のないように近かったと思います。
Popup view on Mortar
発表:KeithYokoma さん
Android のライフサイクルやビューに関わる Mortarについてお話されました。私には難しい話で、理解できていないのですが、以下の資料に詳しい内容が載っていますので、ぜひ御覧ください。
まとめ
今回は、初参加させていただきましたが、スマートフォン業界の TIPS が多く発表されました。気軽に参加できますし、iOS / Android の技術者が交流できる貴重な場だと思います。 既にこちらで次回以降のイベントページが作成されています。ぜひ参加されてはいかがでしょうか?